Modern-day mobile devices contain many sensors. Usually, a data processing unit, controller, host device, or master device (hereinafter referred to as simply a controller or a host controller) is provided to receive and process data collected by sensors or slave units (hereinafter referred to a “sensor”). To conserve power, the controller is regularly placed into a sleep state when no data is being transferred from the sensors to the controller.
Two methods of transferring data from sensors to a controller are commonly utilized. In the first method, which is known as the asynchronous method, a sensor with available data to transfer notifies the controller by issuing a signal (e.g., a Data Ready Interrupt (DRI) signal through a dedicated DRI pin for certain known systems), which wakes up the controller, and then the sensor transfers the data when the controller is ready. In the second method, which is known as the synchronous method, the controller wakes up from the sleep state spontaneously at predetermined time intervals, polls the sensors, and receives from the sensors whatever data is present at the sensors. The synchronous method is more energy efficient in a device that includes multiple sensors because data transfers from more than one sensor may be consolidated into a single poll and transfer session.
In systems where multiple sensors or other devices provide periodically sampled data, it is further advantageous to be able to instruct the sensors to collect the data at essentially synchronized times, and for the controller to read the data from several sensors within the same awake time window or system awake period. Ideally, assuming a sensor delivers only the most current results, polling a sensor at a frequency that coincides with the sensor's sampling frequency is sufficient to obtain all of the data collected by the sensor. However, misalignment of the timing signals may result because the controller and the sensors do not usually share timing signals. Misalignment of the timing signals can cause some sensor data samples to be lost and/or cause some sensor data samples to be read twice even when the sensors are polled at their defined sampling frequencies. Misalignment may be exacerbated because some sensors have poor clock or timer accuracy (e.g., ±15% deviation over a temperature range and from device to device). Moreover, many sensors have limited processing capabilities that can be used to calibrate clocks and timers.